package org.jeecg.modules.engineering.entity;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.system.entity.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 设备基础信息表
 * @Author: jeecg-boot
 * @Date:   2019-08-15
 * @Version: V1.0
 */
@Data
@TableName("equip_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="equip_info对象", description="设备基础信息表")
public class EquipInfo extends BaseEntity {
    
	/**设备id*/
	@TableId(type = IdType.UUID)
    @ApiModelProperty(value = "设备id")
	private String id;
	/**租户id*/
	//@Excel(name = "租户id", width = 15)
    @ApiModelProperty(value = "租户id")
	private Long tenantId;
	/**所属小区*/
	@Excel(name = "所属小区", width = 15,dicCode = "id" ,dictTable="base_project",dicText="name")
    @ApiModelProperty(value = "所属小区")
	private String projectId;
	/**设备名称*/
	@Excel(name = "设备名称", width = 15)
    @ApiModelProperty(value = "设备名称")
	private String equipName;
	/**设备编号*/
	@Excel(name = "设备编号", width = 15)
    @ApiModelProperty(value = "设备编号")
	private String equipCode;
	/**设备外部编号*/
	@Excel(name = "设备外部编号", width = 15)
    @ApiModelProperty(value = "设备外部编号")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String equipOutCode;
	/**物管中心的signKey*/
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String signKey;
	/**数据采集商*/
	@Excel(name = "数据采集商", width = 15,dicCode = "id" ,dictTable="equip_data_collector",dicText="collector_name")
	@ApiModelProperty(value = "数据采集商")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String collectorId;
	/**是否为智能表*/
	@Excel(name = "是否为智能表", width = 15,dicCode = "auto_flg")
	@ApiModelProperty(value = "是否为智能表 0 为非智能  1为智能表")
	private Integer autoFlg;
	/**设备状态 0 正常 1 异常 2 维护*/
	@Excel(name = "设备状态", width = 15,dicCode = "equip_status")
	@ApiModelProperty(value = "设备状态")
	private Integer equipStatus;
	/**设备分类id*/
	@Excel(name = "设备分类", width = 15,dicCode = "id" ,dictTable="equip_sort",dicText="sort_name")
    @ApiModelProperty(value = "设备分类")
	private String sortId;
	/**设备经度*/
	@Excel(name = "设备经度", width = 15)
    @ApiModelProperty(value = "设备经度")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Double equipLongitude;
	/**设备维度*/
	@Excel(name = "设备维度", width = 15)
    @ApiModelProperty(value = "设备维度")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Double equipDimension;
	/**设备位置*/
	@Excel(name = "设备位置", width = 15)
    @ApiModelProperty(value = "设备位置")
	private String equipPosition;
	/**设备图片路径*/
    @ApiModelProperty(value = "设备图片路径")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String imagePath;
	/**环境图片路径*/
	@ApiModelProperty(value = "设备图片路径")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String envImagePath;
	/** 设备型号*/
	@Excel(name = "设备型号", width = 15)
    @ApiModelProperty(value = "设备型号")
	private String equipModel;
	/**设备厂商*/
	@Excel(name = "设备厂商", width = 15)
    @ApiModelProperty(value = "设备厂商")
	private String equipManufacturer;
	/**责任人*/
	@Excel(name = "责任人", width = 15,dicCode = "id" ,dictTable="sys_user",dicText="realname")
    @ApiModelProperty(value = "责任人")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String responsible;
	/**责任人手机*/
	@Excel(name = "责任人手机", width = 15)
    @ApiModelProperty(value = "责任人手机")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String responsiblePhone;
	/**是否维保 0 需要 1 不需要*/
	@Excel(name = "是否维保", width = 15,dicCode = "need_maintenance")
    @ApiModelProperty(value = "是否维保")
	private Integer needMaintenance;
	/**是否巡检 0 需要 1 不需要*/
	@Excel(name = "是否巡检", width = 15,dicCode = "need_inspection")
    @ApiModelProperty(value = "是否巡检")
	private Integer needInspection;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String remark;
	/**维保方式 0 二维码 1 现场*/
	@Excel(name = "维保方式", width = 15,dicCode = "maintenance_type")
    @ApiModelProperty(value = "维保方式")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String maintenanceType;
	/**合同开始时间*/
	@Excel(name = "合同开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "合同开始时间")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date contractStartTime;
	/**合同结束时间*/
	@Excel(name = "合同结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "合同结束时间")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date contractEndTime;
	/**首次维保时间*/
	@Excel(name = "首次维保时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "首次维保时间")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date contractFirstTime;
	/**维保周期 0 每年一次 1 每月一次*/
	@Excel(name = "维保周期", width = 15,dicCode = "maintenance_cycle")
    @ApiModelProperty(value = "维保周期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String maintenanceCycle;
	/**维保提醒 0 提前三天 1 一天七天 2 提前一天*/
	@Excel(name = "维保提醒", width = 15,dicCode = "maintenance_remind")
    @ApiModelProperty(value = "维保提醒")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String maintenanceRemind;
	/**维保公司*/
	@Excel(name = "维保公司", width = 15)
    @ApiModelProperty(value = "维保公司")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String maintenanceCompany;
	/**联系人*/
	@Excel(name = "联系人", width = 15)
    @ApiModelProperty(value = "联系人")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String contactPeople;
	/**联系电话*/
	@Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String contactPhone;
	/**维保内容*/
	@Excel(name = "维保内容", width = 15)
    @ApiModelProperty(value = "维保内容")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String maintenanceContent;
	/**出厂日期*/
	@Excel(name = "出厂日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "出厂日期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date productionTime;
	/**安装日期*/
	@Excel(name = "安装日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "安装日期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date installTime;
	/**交付日期*/
	@Excel(name = "交付日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "交付日期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date deliveryTime;
	/**启用日期*/
	@Excel(name = "启用日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "启用日期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date enableTime;
	/**年检日期*/
	@Excel(name = "年检日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "年检日期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date yearInspectionTime;
	/**质保结束日期*/
	@Excel(name = "质保结束日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "质保结束日期")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private Date warrantyEndTime;
	/**出厂编号*/
	@Excel(name = "出厂编号", width = 15)
    @ApiModelProperty(value = "出厂编号")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String productionCode;
	/**供应商*/
	@Excel(name = "供应商", width = 15)
    @ApiModelProperty(value = "供应商")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String supplier;
	/**额定电压*/
	@Excel(name = "额定电压", width = 15)
    @ApiModelProperty(value = "额定电压")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String ratedVoltage;
	/**额定电流*/
	@Excel(name = "额定电流", width = 15)
    @ApiModelProperty(value = "额定电流")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String ratedCurrent;
	/**功率*/
	@Excel(name = "功率", width = 15)
    @ApiModelProperty(value = "功率")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String power;
	/**频率*/
	@Excel(name = "频率", width = 15)
    @ApiModelProperty(value = "频率")
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String frequency;
	/**创建人*/
	@Excel(name = "创建人", width = 15,dicCode = "id" ,dictTable="sys_user",dicText="realname")
    @ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**修改人*/
	@Excel(name = "修改人", width = 15,dicCode = "id" ,dictTable="sys_user",dicText="realname")
    @ApiModelProperty(value = "修改人")
	private String updateBy;
	/**修改时间*/
	@Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
	private Date updateTime;
	/**删除标识0-正常,1-已删除*/
	//@Excel(name = "删除标识0-正常,1-已删除", width = 15)
    @ApiModelProperty(value = "删除标识0-正常,1-已删除")
	@TableLogic
	private Integer delFlag;

    @TableField(exist = false)
    private List<String> collectList;

	@TableField(exist = false)
    private String departId;
	@TableField(exist = false)
    private String topSystem;

	@TableField(exist = false)
	private String projectName;//小区名称
	@TableField(exist = false)
	private String collectorName;//采集商名称
	@TableField(exist = false)
	private String autoFlgStr;
	@TableField(exist = false)
	private String sortName;
	@TableField(exist = false)
	private String equipStatusStr;
	@TableField(exist = false)
	private String responsibleName;
	@TableField(exist = false)
	private String needMaintenanceStr;
	@TableField(exist = false)
	private String needInspectionStr;
	@TableField(exist = false)
	private String maintenanceTypeStr;
	@TableField(exist = false)
	private String maintenanceCycleStr;
	@TableField(exist = false)
	private String maintenanceRemindStr;
	@TableField(exist = false)
	private String createName;
	@TableField(exist = false)
	private String updateName;
}
